package com.travel.server.manager.dao;

import com.travel.server.manager.model.OrderRefundInfo;
import com.travel.server.manager.model.OrderRefundInfoExample;

import java.util.Date;
import java.util.List;

import com.travel.server.manager.model.dto.OrderRefundItemDto;
import com.travel.server.manager.model.dto.data.RefundAnalysisDto;
import com.travel.server.manager.model.dto.data.TopRefundDto;
import org.apache.ibatis.annotations.Param;

public interface OrderRefundInfoDao {
    int countByExample(OrderRefundInfoExample example);

    int deleteByExample(OrderRefundInfoExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(OrderRefundInfo record);

    int insertSelective(OrderRefundInfo record);

    List<OrderRefundInfo> selectByExample(OrderRefundInfoExample example);

    OrderRefundInfo selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") OrderRefundInfo record, @Param("example") OrderRefundInfoExample example);

    int updateByExample(@Param("record") OrderRefundInfo record, @Param("example") OrderRefundInfoExample example);

    int updateByPrimaryKeySelective(OrderRefundInfo record);

    int updateByPrimaryKey(OrderRefundInfo record);

    List<OrderRefundItemDto> selectByPage(OrderRefundInfoExample example);

    List<RefundAnalysisDto> selectRefundAnalysis(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    List<TopRefundDto> selectTopRefund(Integer num);

    Integer selectTotalRefund();

    String selectMaxReason(Integer projectId);
}